﻿using BCCommon.Enums;
using BCCommon.OAEnums.Workflow;
using System;

namespace BCDto.OA.Workflow.WorkflowActivityStepInstance
{
    /// <summary>
    /// 工作流活动步骤实例
    /// </summary>
    public class WorkflowActivityStepInstanceDto
    {
        /// <summary>
        /// 工作流活动步骤实例Id
        /// </summary>
        public long WorkflowActivityStepInstanceId { get; set; }
        /// <summary>
        /// 工作流活动实例编号
        /// </summary>
        public string WorkflowActivityInstanceNo { get; set; }
        /// <summary>
        /// 工作流活动实例Id
        /// </summary>
        public long WorkflowActivityInstanceId { get; set; }
        /// <summary>
        /// 任务步骤
        /// </summary>
        public int TaskStep { get; set; }
        /// <summary>
        /// 步骤名称
        /// </summary>
        public string StepName { get; set; }
        /// <summary>
        /// 是否标准处理方式
        /// </summary>
        public bool IsBaseHandleMode { get; set; }
        /// <summary>
        /// 分配基准
        /// </summary>
        public AssignBasedType AssignBased { get; set; }
        /// <summary>
        /// 指派方式（全体、工作量最少的人、优先分配给提出执行任务请求的人、基于优先数分配、分配任务给拥有轮转令牌的人）
        /// </summary>
        public WorkflowAssignMode? AssignMode { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdateTime { get; set; }
        /// <summary>
        /// 任务方法标题
        /// </summary>
        public string TaskMethodTitle { get; set; }
        /// <summary>
        /// 任务服务名称
        /// </summary>
        public string TaskServiceName { get; set; }
        /// <summary>
        /// 任务方法名称
        /// </summary>
        public string TaskMethodName { get; set; }
        /// <summary>
        /// 任务方法参数
        /// </summary>
        public string TaskMethodParameters { get; set; }
        /// <summary>
        /// 步骤类型
        /// </summary>
        public WorkflowStepType StepType { get; set; }
        /// <summary>
        /// 跳跃步骤时跳跃到那个步骤
        /// </summary>
        public int? GotoStep { get; set; }
        /// <summary>
        /// 部门Id
        /// </summary>
        public int? DepartmentId { get; set; }
        /// <summary>
        /// 工作组Id（对应团队）
        /// </summary>
        public long? WorkingGroupId { get; set; }
        /// <summary>
        /// 对应部门人员角色
        /// </summary>
        public string Role { get; set; }
        /// <summary>
        /// 审批者管理员Id（对应Human）
        /// </summary>
        public long? AdminId { get; set; }
        /// <summary>
        /// 对应部门人员岗位
        /// </summary>
        public string Position { get; set; }

        /// <summary>
        /// 角色类型
        /// </summary>
        public RoleType RoleType { get; set; }

        /// <summary>
        /// 驳回跳跃到步骤
        /// </summary>
        public int? RejectGotoStep { get; set; }
    }
}
